using System.Collections.Generic;

namespace Framework.Core
{
    public interface IOwner
    {
        ITaskList DefaultTaskList { get; }
        string OwnerName { get; }
        bool GrantsAuthorityTo(IOwner owner);
        bool AcceptsOwnershipOf(ICase theCase);
    }

    public interface IOwnable
    {
        IOwner CurrentOwner { get; set; }
        ITaskList TaskList { get; }
        void ChangeOwnership(ITaskList newTaskList);
    }

    public interface IOwnershipInfo
    {
        IEnumerable<string> FailureReasons { get; }
    }
}